import request from './auth'

/**
 * 分页查询卖家申请列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getSellerApplicationList(params) {
    return request({
        url: '/admin/seller/applications/page',
        method: 'get',
        params
    }).then(res => {
        console.log('获取卖家申请列表响应:', res)
        return res.data || res
    }).catch(error => {
        console.error('获取卖家申请列表失败:', error)
        return Promise.reject(error)
    })
}

/**
 * 审核卖家申请
 * @param {Number} status - 审核状态(1-通过，2-拒绝)
 * @param {Number} id - 申请ID
 * @returns {Promise}
 */
export function approveSellerApplication(status, id) {
    return request({
        url: `/admin/seller/application/${status}`,
        method: 'post',
        params: { id }
    }).then(res => {
        console.log('审核卖家申请响应:', res)
        return res.data === undefined ? res : res.data
    }).catch(error => {
        console.error('审核卖家申请失败:', error)
        return Promise.reject(error)
    })
}

/**
 * 提交卖家申请
 * @param {Object} data - 申请数据
 * @returns {Promise}
 */
export function applySeller(data) {
    return request({
        url: '/user/seller/apply',
        method: 'post',
        data
    }).then(res => {
        console.log('提交卖家申请响应:', res)
        return res
    }).catch(error => {
        console.error('提交卖家申请失败:', error)
        return Promise.reject(error)
    })
}

/**
 * 查询卖家申请状态
 * @returns {Promise}
 */
export function getApplicationStatus() {
    return request({
        url: '/user/seller/application/status',
        method: 'get'
    })
}

/**
 * 获取卖家信息
 * @returns {Promise}
 */
export function getSellerInfo() {
    return request({
        url: '/user/seller/info',
        method: 'get'
    })
}

/**
 * 上传图片
 * @param {File} file - 图片文件
 * @returns {Promise}
 */
export function uploadImage(file) {
    const formData = new FormData()
    formData.append('file', file)

    return request({
        url: '/user/common/upload',
        method: 'post',
        data: formData,
        headers: {
            'Content-Type': 'multipart/form-data'
        }
    }).then(res => {
        console.log('上传图片响应:', res)
        return res.data === undefined ? res : res.data
    })
}

/**
 * 分页查询卖家列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getSellerList(params) {
    return request({
        url: '/admin/seller/list',
        method: 'get',
        params
    }).then(res => {
        console.log('获取卖家列表响应:', res)
        if (res && res.data) {
            return res.data
        }
        return res
    }).catch(error => {
        console.error('获取卖家列表失败:', error)
        return Promise.reject(error)
    })
}

/**
 * 发布拍卖品
 * @param {Object} data - 拍卖品数据
 * @returns {Promise}
 */
export function publishAuction(data) {
    return request({
        url: '/user/seller/auction',
        method: 'post',
        data
    })
}

/**
 * 更新拍卖品
 * @param {Object} data - 拍卖品数据
 * @returns {Promise}
 */
export function updateAuction(data) {
    return request({
        url: '/user/seller/auction',
        method: 'put',
        data
    })
}

/**
 * 分页查询卖家拍卖品列表
 * @param {Object} data - 查询参数
 * @returns {Promise}
 */
export function getSellerAuctions(data) {
    return request({
        url: '/user/seller/auction/page',
        method: 'get',
        params: data
    })
}

/**
 * 根据ID获取拍卖品详情
 * @param {Number} id - 拍卖品ID
 * @returns {Promise}
 */
export function getAuctionById(id) {
    return request({
        url: `/user/seller/auction/${id}`,
        method: 'get'
    })
}

/**
 * 取消拍卖
 * @param {Number} id - 拍卖品ID
 * @returns {Promise}
 */
export function cancelAuction(id) {
    return request({
        url: `/user/seller/auction/cancel/${id}`,
        method: 'put'
    })
}

/**
 * 删除拍卖品
 * @param {Number} id - 拍卖品ID
 * @returns {Promise}
 */
export function deleteAuction(id) {
    return request({
        url: `/user/seller/auction/${id}`,
        method: 'delete'
    })
}